#include "dialog.h"
#include "ui_dialog.h"
#include <QRegExpValidator>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Dialog)
{
    // setupUi函数的作用是将设计器生成的UI元素放置到用户界面类中，使得我们可以在代码中对这些UI元素进行进一步的操作和处理。
    ui->setupUi(this);
    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); // 正则表达式
    ui->lineEdit->setValidator(new QRegExpValidator(regExp, this));
    connect(ui->okButtion, SIGNAL(clicked()), this,SLOT(accept()));
    connect(ui->concelButton, SIGNAL(clicked()), this, SLOT(reject()));
    connect(ui->lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(textChangedSlot()));
}

Dialog::~Dialog()
{
    delete ui;
}

// 如果槽函数名称以 on_ 开头，后面跟着信号名称的小写形式，则表示该槽函数与对应的信号进行连接。
// 例如，on_lineEdit_textChanged() 会自动与 lineEdit 的 textChanged() 信号进行连接
void Dialog::textChangedSlot()
{
    ui->okButtion->setEnabled(ui->lineEdit->hasAcceptableInput());
}
